package main;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import shop.Shop;
public class StartGui implements ActionListener {
private JFrame frame = new JFrame("Queue Thread");
private JPanel input = new JPanel();
private JPanel confirm = new JPanel();
private JLabel finishTimeLabel = new JLabel("Finish time");
private JLabel minProcTimeLabel = new JLabel("Min processing time");
private JLabel maxProcTimeLabel = new JLabel("Max processing time");
private JLabel openCountersLabel = new JLabel("Open counters");
private JTextField finishTimeText = new JTextField();
private JTextField minProcTimeText = new JTextField();
private JTextField maxProcTimeText = new JTextField();
private JTextField openCountersText = new JTextField();
private int nrOfClients;
private int finishTime;
private int minProcTime;
private int maxProcTime;
private int openCounters;
private JButton confirmButton = new JButton("Confirm");
private Shop shop;
public StartGui() {
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setLayout(new BorderLayout());
frame.setVisible(true);
input.setLayout(new GridLayout(4, 2));
input.add(finishTimeLabel);
input.add(finishTimeText);
input.add(minProcTimeLabel);
input.add(minProcTimeText);
input.add(maxProcTimeLabel);
input.add(maxProcTimeText);
input.add(openCountersLabel);
input.add(openCountersText);
finishTimeText.addActionListener(this);
minProcTimeText.addActionListener(this);
maxProcTimeText.addActionListener(this);
openCountersText.addActionListener(this);
confirmButton.setActionCommand("confirm");
confirmButton.addActionListener(this);
confirm.setLayout(new FlowLayout());
confirm.add(confirmButton);
frame.add(input, BorderLayout.CENTER);
frame.add(confirm, BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("confirm")) {
finishTime = Integer.parseInt(finishTimeText.getText());
minProcTime = Integer.parseInt(minProcTimeText.getText());
maxProcTime = Integer.parseInt(maxProcTimeText.getText());
openCounters = Integer.parseInt(openCountersText.getText());
shop = new Shop(finishTime, maxProcTime, minProcTime, openCounters);
Thread shopThread = new Thread(shop);
shopThread.start();
}
}
public int getNrOfClients() {
return nrOfClients;
}
public int getFinishTime() {
return finishTime;
}
public int getMinProcTime() {
return minProcTime;
}
public int getMaxProcTime() {
return maxProcTime;
}
public int getOpenCountersNr() {
return openCounters;
}
}